const baseUrl = "src";
const exclude = [`!${baseUrl}/node_modules/**`];
const { lastRun } = require('gulp');

/**
 * 匹配文件路径
 */
const globs = {
  ts: [`${baseUrl}/**/*.ts`], // 匹配ts 文件
  js: [`${baseUrl}/**/*.js`], // 匹配js 文件
  json: [`${baseUrl}/**/*.json`], // 匹配json 文件
  less: [`${baseUrl}/**/*.less`], // 匹配less 文件
  scss: [`${baseUrl}/**/*.scss`], // 匹配scss 文件
  wxss: [`${baseUrl}/**/*.wxss`], // 匹配wxss 文件
  image: [`${baseUrl}/**/*.{png,jpg,jpeg,gif,svg}`], // 处理图片
  wxml: [`${baseUrl}/**/*.wxml`], // 匹配 wxml 文件
  other: [`${baseUrl}/**/*.wxs`, `${baseUrl}/**/*.wxss`, `${baseUrl}/**/*.{png,jpg,jpeg,gif,svg}`], // 除上述文件外的其它文件
}

/**
 * 增量编译解决方案，
 * 当文件内容未变化，但文件路径发生改变时，返回时间戳为 0，将文件的mtime(文件内容最后被修改的时间)与since传入的值（此时为 0）对比，就可以增量编译该文件。
 * @param task 
 * @returns 
 */
const since = task => {
  return file => {
    return lastRun(task) > file.stat.ctime ? lastRun(task) : 0;
  }
}

exports.globs = globs;
exports.since = since;